// 通过 WeakMap 建立私有变量，将对象存放在一个 WeakMap 中，使用者不知道 WeakMap 的存在，
// 无法直接通过属性访问获取值，
const privateData = new WeakMap();

class Person {

    constructor(name,age)  {
        privateData.set(this,{name:name,age:age});
    }
    getName() {
        return privateData.get(this).name;
    }
}

let person = new Person('daxia',18);

console.log(privateData.get(person));
console.log(person.getName());